<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>珠峰架构师成长计划</title>
    <link rel="stylesheet" type="text/css" href="../static/css/main.css">
</head>
<body>
<div class="nav">
    <div class="logo">
        
            珠峰架构师成长计划
        
    </div>
<ul><li><a href="../index.html">0.Async</a></li><li><a href="../html/0.editor.html">0.editor</a></li><li><a href="../html/0.module.html">0.module</a></li><li class="active"><a href="../html/1.ES2015.html">1.ES2015</a></li><li><a href="../html/2.Promise.html">2.Promise</a></li><li><a href="../html/3.Node.html">3.Node</a></li><li><a href="../html/4.NodeInstall.html">4.NodeInstall</a></li><li><a href="../html/5.REPL.html">5.REPL</a></li><li><a href="../html/6.NodeCore.html">6.NodeCore</a></li><li><a href="../html/7.module&NPM.html">7.module&NPM</a></li><li><a href="../html/8.Encoding.html">8.Encoding</a></li><li><a href="../html/9.Buffer.html">9.Buffer</a></li><li><a href="../html/10.fs.html">10.fs</a></li><li><a href="../html/11.Stream-1.html">11.Stream-1</a></li><li><a href="../html/11.Stream-2.html">11.Stream-2</a></li><li><a href="../html/11.Stream-3.html">11.Stream-3</a></li><li><a href="../html/11.Stream-4.html">11.Stream-4</a></li><li><a href="../html/12-Network-2.html">12-Network-2</a></li><li><a href="../html/12.NetWork-3.html">12.NetWork-3</a></li><li><a href="../html/12.Network-1.html">12.Network-1</a></li><li><a href="../html/13.tcp.html">13.tcp</a></li><li><a href="../html/14.http-1.html">14.http-1</a></li><li><a href="../html/14.http-2.html">14.http-2</a></li><li><a href="../html/15.compress.html">15.compress</a></li><li><a href="../html/16.crypto.html">16.crypto</a></li><li><a href="../html/17.process.html">17.process</a></li><li><a href="../html/18.yargs.html">18.yargs</a></li><li><a href="../html/19.cache.html">19.cache</a></li><li><a href="../html/20.action.html">20.action</a></li><li><a href="../html/21.https.html">21.https</a></li><li><a href="../html/22.cookie.html">22.cookie</a></li><li><a href="../html/23.session.html">23.session</a></li><li><a href="../html/24.express-1.html">24.express-1</a></li><li><a href="../html/24.express-2.html">24.express-2</a></li><li><a href="../html/24.express-3.html">24.express-3</a></li><li><a href="../html/24.express-4.html">24.express-4</a></li><li><a href="../html/25.koa-1.html">25.koa-1</a></li><li><a href="../html/26.webpack-1-basic.html">26.webpack-1-basic</a></li><li><a href="../html/26.webpack-2-optimize.html">26.webpack-2-optimize</a></li><li><a href="../html/26.webpack-3.tapable.html">26.webpack-3.tapable</a></li><li><a href="../html/26.webpack-4-AST.html">26.webpack-4-AST</a></li><li><a href="../html/26.webpack-5-source.html">26.webpack-5-source</a></li><li><a href="../html/26.webpack-6-loader.html">26.webpack-6-loader</a></li><li><a href="../html/26.webpack-7-plugin.html">26.webpack-7-plugin</a></li><li><a href="../html/26.webpack-8-hand.html">26.webpack-8-hand</a></li><li><a href="../html/27.react-1.html">27.react-1</a></li><li><a href="../html/27.react-2.html">27.react-2</a></li><li><a href="../html/27.react-3.html">27.react-3</a></li><li><a href="../html/27.react-4-immutable.html">27.react-4-immutable</a></li><li><a href="../html/27.react-5-react-dom-diff.html">27.react-5-react-dom-diff</a></li><li><a href="../html/27.react-6.html">27.react-6</a></li><li><a href="../html/28.react-mobx.html">28.react-mobx</a></li><li><a href="../html/28.redux-0.html">28.redux-0</a></li><li><a href="../html/28.redux-1.html">28.redux-1</a></li><li><a href="../html/28.redux-2-中间件.html">28.redux-2-中间件</a></li><li><a href="../html/28.redux-3-saga.html">28.redux-3-saga</a></li><li><a href="../html/28.redux-jwt-back.html">28.redux-jwt-back</a></li><li><a href="../html/28.redux-jwt-front.html">28.redux-jwt-front</a></li><li><a href="../html/29.mongodb-1.html">29.mongodb-1</a></li><li><a href="../html/29.mongodb-2.html">29.mongodb-2</a></li><li><a href="../html/29.mongodb-3.html">29.mongodb-3</a></li><li><a href="../html/29.mongodb-4.html">29.mongodb-4</a></li><li><a href="../html/29.mongodb-5.html">29.mongodb-5</a></li><li><a href="../html/29.mongodb-6.html">29.mongodb-6</a></li><li><a href="../html/30.cms-1-mysql.html">30.cms-1-mysql</a></li><li><a href="../html/30.cms-2-mysql.html">30.cms-2-mysql</a></li><li><a href="../html/30.cms-3-mysql.html">30.cms-3-mysql</a></li><li><a href="../html/30.cms-4-egg.html">30.cms-4-egg</a></li><li><a href="../html/30.cms-5-api.html">30.cms-5-api</a></li><li><a href="../html/30.cms-6-roadhog.html">30.cms-6-roadhog</a></li><li><a href="../html/30.cms-7-umi.html">30.cms-7-umi</a></li><li><a href="../html/30.cms-8-dva.html">30.cms-8-dva</a></li><li><a href="../html/30.cms-9-dva.html">30.cms-9-dva</a></li><li><a href="../html/30.cms-10-front.html">30.cms-10-front</a></li><li><a href="../html/30.cms-11-deploy.html">30.cms-11-deploy</a></li><li><a href="../html/33.redis.html">33.redis</a></li><li><a href="../html/34.unittest.html">34.unittest</a></li><li><a href="../html/35.jwt.html">35.jwt</a></li><li><a href="../html/36.websocket-1.html">36.websocket-1</a></li><li><a href="../html/36.websocket-2.html">36.websocket-2</a></li><li><a href="../html/38.chat-api-1.html">38.chat-api-1</a></li><li><a href="../html/38.chat-api-2.html">38.chat-api-2</a></li><li><a href="../html/38.chat-3.html">38.chat-3</a></li><li><a href="../html/38.chat-api-3.html">38.chat-api-3</a></li><li><a href="../html/38.chat.html">38.chat</a></li><li><a href="../html/38.chat2.html">38.chat2</a></li><li><a href="../html/38.chat2.html">38.chat2</a></li><li><a href="../html/39.crawl-0.html">39.crawl-0</a></li><li><a href="../html/39.crawl-1.html">39.crawl-1</a></li><li><a href="../html/39.crawl-2.html">39.crawl-2</a></li><li><a href="../html/40.deploy.html">40.deploy</a></li><li><a href="../html/41.safe.html">41.safe</a></li><li><a href="../html/42.test.html">42.test</a></li><li><a href="../html/43.nginx.html">43.nginx</a></li><li><a href="../html/44.enzyme.html">44.enzyme</a></li><li><a href="../html/45.docker.html">45.docker</a></li><li><a href="../html/46.elastic.html">46.elastic</a></li><li><a href="../html/47.oauth.html">47.oauth</a></li><li><a href="../html/48.wxpay.html">48.wxpay</a></li><li><a href="../html/49.nunjucks.html">49.nunjucks</a></li><li><a href="../html/50.ketang.html">50.ketang</a></li><li><a href="../html/index.html">index</a></li><li><a href="../html/51.typescript.html">51.typescript</a></li><li><a href="../html/52.UML.html">52.UML</a></li><li><a href="../html/53.design.html">53.design</a></li><li><a href="../html/index.html">index</a></li><li><a href="../html/54.linux.html">54.linux</a></li><li><a href="../html/55.yaml.html">55.yaml</a></li><li><a href="../html/50.ketang2.html">50.ketang2</a></li><li><a href="../html/56.ts.html">56.ts</a></li><li><a href="../html/57.ts_react.html">57.ts_react</a></li><li><a href="../html/58.react-ssr.html">58.react-ssr</a></li><li><a href="../html/59.react-ssr.html">59.react-ssr</a></li></ul></div>


<div class="warpper">

    <div class="page-toc">
        <ul><li><a href="#t0ECMAScript6">ECMAScript6</a></li><li><a href="#t11. 作用域变量">1. 作用域变量</a><ul><li><a href="#t21.1 var的问题">1.1 var的问题</a></li><li><a href="#t31.2 块级作用域">1.2 块级作用域</a><ul><li><a href="#t41.2.1 实现块级作用域">1.2.1 实现块级作用域</a></li><li><a href="#t51.2.2 不会污染全局对象">1.2.2 不会污染全局对象</a></li><li><a href="#t61.2.3 for循环中也可以使用i">1.2.3 for循环中也可以使用i</a></li><li><a href="#t71.2.4 重复定义会报错">1.2.4 重复定义会报错</a></li><li><a href="#t81.2.5 不存在变量的预解释">1.2.5 不存在变量的预解释</a></li><li><a href="#t91.2.6 闭包的新写法">1.2.6 闭包的新写法</a></li></ul></li></ul></li><li><a href="#t102. 常量">2. 常量</a><ul><li><a href="#t112.1 常量不能重新赋值">2.1 常量不能重新赋值</a></li><li><a href="#t122.2 变量值可改变">2.2 变量值可改变</a></li><li><a href="#t132.3 不同的块级作用域可以多次定义">2.3 不同的块级作用域可以多次定义</a></li></ul></li><li><a href="#t143. 解构">3. 解构</a><ul><li><a href="#t153.1 解析数组">3.1 解析数组</a></li><li><a href="#t163.2 嵌套赋值">3.2 嵌套赋值</a></li><li><a href="#t173.3 省略赋值">3.3 省略赋值</a></li><li><a href="#t183.4 解构对象">3.4 解构对象</a></li><li><a href="#t193.5 默认值">3.5 默认值</a></li></ul></li><li><a href="#t204. 字符串">4. 字符串</a><ul><li><a href="#t214.1 模板字符串">4.1 模板字符串</a></li><li><a href="#t224.2 带标签的模板字符串">4.2 带标签的模板字符串</a></li><li><a href="#t234.3  字符串新方法">4.3  字符串新方法</a></li><li><a href="#t244.4 repeat">4.4 repeat</a></li></ul></li><li><a href="#t255. 函数">5. 函数</a><ul><li><a href="#t265.1 默认参数">5.1 默认参数</a></li><li><a href="#t275.2 展开操作符">5.2 展开操作符</a></li><li><a href="#t285.3 剩余操作符">5.3 剩余操作符</a></li><li><a href="#t295.4 解构参数">5.4 解构参数</a></li><li><a href="#t305.5 函数的名字">5.5 函数的名字</a></li><li><a href="#t315.6 箭头函数">5.6 箭头函数</a></li><li><a href="#t325.7 数组的新方法">5.7 数组的新方法</a><ul><li><a href="#t335.7.1 from">5.7.1 from</a></li><li><a href="#t345.7.2 Array.of">5.7.2 Array.of</a></li><li><a href="#t355.7.3 copyWithin">5.7.3 copyWithin</a></li><li><a href="#t365.7.4 find">5.7.4 find</a></li><li><a href="#t375.7.5 fill">5.7.5 fill</a></li><li><a href="#t385.7.5 map">5.7.5 map</a></li><li><a href="#t395.7.6 reduce">5.7.6 reduce</a></li><li><a href="#t405.7.7 filter">5.7.7 filter</a></li><li><a href="#t415.7.8 forEach">5.7.8 forEach</a></li></ul></li></ul></li><li><a href="#t426. 对象">6. 对象</a><ul><li><a href="#t436.1 对象字面量">6.1 对象字面量</a></li><li><a href="#t446.2 Object.is">6.2 Object.is</a></li><li><a href="#t456.3 Object.assign">6.3 Object.assign</a></li><li><a href="#t466.4 Object.setPrototypeOf">6.4 Object.setPrototypeOf</a></li><li><a href="#t476.5 proto">6.5 proto</a></li><li><a href="#t486.6 super">6.6 super</a></li></ul></li><li><a href="#t497. 类">7. 类</a><ul><li><a href="#t507.1 class">7.1 class</a></li><li><a href="#t517.2 get与set">7.2 get与set</a></li><li><a href="#t527.3 静态方法-static">7.3 静态方法-static</a></li><li><a href="#t537.4 继承extends">7.4 继承extends</a></li></ul></li><li><a href="#t548.生成器(Generator)与迭代器(Iterator)">8.生成器(Generator)与迭代器(Iterator)</a><ul><li><a href="#t558.1 Iterators模拟">8.1 Iterators模拟</a></li><li><a href="#t568.2 Generators">8.2 Generators</a></li></ul></li><li><a href="#t579.集合">9.集合</a><ul><li><a href="#t589.1 Set">9.1 Set</a></li><li><a href="#t599.2 Map">9.2 Map</a></li></ul></li><li><a href="#t6010.模块">10.模块</a><ul><li><a href="#t6110.1 模块">10.1 模块</a></li><li><a href="#t6210.2 重命名">10.2 重命名</a></li><li><a href="#t6310.3 默认导出">10.3 默认导出</a></li><li><a href="#t6411 深度克隆">11 深度克隆</a></li></ul></li><li><a href="#t65作业">作业</a></li></ul>
    </div>
    
    <div class="content markdown-body">
        <h2 id="t0ECMAScript6">ECMAScript6 <a href="#t0ECMAScript6"> # </a></h2>
<p>ECMAScript&#x7B80;&#x79F0;&#x5C31;&#x662F;ES,&#x4F60;&#x53EF;&#x4EE5;&#x628A;&#x5B83;&#x770B;&#x6210;&#x662F;&#x4E00;&#x5957;&#x6807;&#x51C6;,JavaScript&#x5C31;&#x662F;&#x5B9E;&#x65BD;&#x4E86;&#x8FD9;&#x5957;&#x6807;&#x51C6;&#x7684;&#x4E00;&#x95E8;&#x8BED;&#x8A00;,&#x73B0;&#x5728;&#x4E3B;&#x6D41;&#x6D4F;&#x89C8;&#x5668;&#x4F7F;&#x7528;&#x7684;&#x662F;ECMAScript5&#x3002;</p>
<p><a href="http://babeljs.io/repl">http://babeljs.io/repl</a></p>
<h2 id="t11. &#x4F5C;&#x7528;&#x57DF;&#x53D8;&#x91CF;">1. &#x4F5C;&#x7528;&#x57DF;&#x53D8;&#x91CF; <a href="#t11. &#x4F5C;&#x7528;&#x57DF;&#x53D8;&#x91CF;"> # </a></h2>
<p>&#x4F5C;&#x7528;&#x57DF;&#x5C31;&#x662F;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x7684;&#x4F5C;&#x7528;&#x8303;&#x56F4;&#x3002;&#x4E5F;&#x5C31;&#x662F;&#x4F60;&#x58F0;&#x660E;&#x4E00;&#x4E2A;&#x53D8;&#x91CF;&#x4EE5;&#x540E;,&#x8FD9;&#x4E2A;&#x53D8;&#x91CF;&#x53EF;&#x4EE5;&#x5728;&#x4EC0;&#x4E48;&#x573A;&#x5408;&#x4E0B;&#x4F7F;&#x7528;
&#x4EE5;&#x524D;&#x7684;<em>JavaScript</em>&#x53EA;&#x6709;&#x5168;&#x5C40;&#x4F5C;&#x7528;&#x57DF;&#xFF0C;&#x8FD8;&#x6709;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#x4F5C;&#x7528;&#x57DF;</p>
<h3 id="t21.1 var&#x7684;&#x95EE;&#x9898;">1.1 var&#x7684;&#x95EE;&#x9898; <a href="#t21.1 var&#x7684;&#x95EE;&#x9898;"> # </a></h3>
<ol>
<li><p>var&#x6CA1;&#x6709;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;&#xFF0C;&#x5B9A;&#x4E49;&#x540E;&#x5728;&#x5F53;&#x524D;&#x95ED;&#x5305;&#x4E2D;&#x90FD;&#x53EF;&#x4EE5;&#x8BBF;&#x95EE;&#xFF0C;&#x5982;&#x679C;&#x53D8;&#x91CF;&#x540D;&#x91CD;&#x590D;&#xFF0C;&#x5C31;&#x4F1A;&#x8986;&#x76D6;&#x524D;&#x9762;&#x5B9A;&#x4E49;&#x7684;&#x53D8;&#x91CF;&#xFF0C;&#x5E76;&#x4E14;&#x4E5F;&#x6709;&#x53EF;&#x80FD;&#x88AB;&#x5176;&#x4ED6;&#x4EBA;&#x66F4;&#x6539;&#x3002;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">if</span> (<span class="hljs-literal">true</span>) {
     <span class="hljs-keyword">var</span> a = <span class="hljs-string">&quot;a&quot;</span>; <span class="hljs-comment">// &#x671F;&#x671B;a&#x662F;&#x67D0;&#x4E00;&#x4E2A;&#x503C;</span>
 }
<span class="hljs-built_in">console</span>.log(a);
</code></pre>
</li>
<li><p>var&#x5728;for&#x5FAA;&#x73AF;&#x6807;&#x8BB0;&#x53D8;&#x91CF;&#x5171;&#x4EAB;&#xFF0C;&#x4E00;&#x822C;&#x5728;&#x5FAA;&#x73AF;&#x4E2D;&#x4F7F;&#x7528;&#x7684;i&#x4F1A;&#x88AB;&#x5171;&#x4EAB;&#xFF0C;&#x5176;&#x672C;&#x8D28;&#x4E0A;&#x4E5F;&#x662F;&#x7531;&#x4E8E;&#x6CA1;&#x6709;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;&#x9020;&#x6210;&#x7684;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">for</span> (<span class="hljs-keyword">var</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">3</span>; i++) {
     setTimeout(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{
         alert(i);
     }, <span class="hljs-number">0</span>);
 }
</code></pre>
<blockquote>
<p>&#x7ED3;&#x679C;<br>
&#x5F39;&#x7A97;&#x4E09;&#x6B21; <code>3</code></p>
</blockquote>
</li>
</ol>
<h3 id="t31.2 &#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;">1.2 &#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF; <a href="#t31.2 &#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;"> # </a></h3>
<p>&#x5728;&#x7528;var&#x5B9A;&#x4E49;&#x53D8;&#x91CF;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x53D8;&#x91CF;&#x662F;&#x901A;&#x8FC7;&#x95ED;&#x5305;&#x8FDB;&#x884C;&#x9694;&#x79BB;&#x7684;&#xFF0C;&#x73B0;&#x5728;&#x7528;&#x4E86;let&#xFF0C;&#x4E0D;&#x4EC5;&#x4EC5;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#x95ED;&#x5305;&#x9694;&#x79BB;&#xFF0C;&#x8FD8;&#x589E;&#x52A0;&#x4E86;&#x4E00;&#x4E9B;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;&#x9694;&#x79BB;&#x3002;
&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x7528;&#x4E00;&#x7EC4;&#x5927;&#x62EC;&#x53F7;&#x5B9A;&#x4E49;&#x4E00;&#x4E2A;&#x5757;,&#x4F7F;&#x7528; let &#x5B9A;&#x4E49;&#x7684;&#x53D8;&#x91CF;&#x5728;&#x5927;&#x62EC;&#x53F7;&#x7684;&#x5916;&#x9762;&#x662F;&#x8BBF;&#x95EE;&#x4E0D;&#x5230;&#x7684;</p>
<h4 id="t41.2.1 &#x5B9E;&#x73B0;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;">1.2.1 &#x5B9E;&#x73B0;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF; <a href="#t41.2.1 &#x5B9E;&#x73B0;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;"> # </a></h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">if</span>(<span class="hljs-literal">true</span>){
    <span class="hljs-keyword">let</span> name = <span class="hljs-string">&apos;zfpx&apos;</span>;
}
<span class="hljs-built_in">console</span>.log(name);<span class="hljs-comment">// ReferenceError: name is not defined</span>
</code></pre>
<h4 id="t51.2.2 &#x4E0D;&#x4F1A;&#x6C61;&#x67D3;&#x5168;&#x5C40;&#x5BF9;&#x8C61;">1.2.2 &#x4E0D;&#x4F1A;&#x6C61;&#x67D3;&#x5168;&#x5C40;&#x5BF9;&#x8C61; <a href="#t51.2.2 &#x4E0D;&#x4F1A;&#x6C61;&#x67D3;&#x5168;&#x5C40;&#x5BF9;&#x8C61;"> # </a></h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">if</span>(<span class="hljs-literal">true</span>){
    <span class="hljs-keyword">let</span> name = <span class="hljs-string">&apos;zfpx&apos;</span>;
}
<span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">window</span>.name);
</code></pre>
<blockquote>
<p>&#x7ED3;&#x679C;
undefined</p>
</blockquote>
<h4 id="t61.2.3 for&#x5FAA;&#x73AF;&#x4E2D;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;i">1.2.3 for&#x5FAA;&#x73AF;&#x4E2D;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;i <a href="#t61.2.3 for&#x5FAA;&#x73AF;&#x4E2D;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;i"> # </a></h4>
<pre><code class="lang-javascript"><span class="hljs-comment">// &#x5D4C;&#x5957;&#x5FAA;&#x73AF;&#x4E0D;&#x4F1A;&#x76F8;&#x4E92;&#x5F71;&#x54CD;</span>
    <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">3</span>; i++) {
        <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&quot;out&quot;</span>, i);
        <span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">2</span>; i++) {
            <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&quot;in&quot;</span>, i);
        }
    }
</code></pre>
<blockquote>
<p>&#x7ED3;&#x679C;
out 0
in 0
in 1
out 1
in 0
in 1
out 2
in 0
in 1</p>
</blockquote>
<h4 id="t71.2.4 &#x91CD;&#x590D;&#x5B9A;&#x4E49;&#x4F1A;&#x62A5;&#x9519;">1.2.4 &#x91CD;&#x590D;&#x5B9A;&#x4E49;&#x4F1A;&#x62A5;&#x9519; <a href="#t71.2.4 &#x91CD;&#x590D;&#x5B9A;&#x4E49;&#x4F1A;&#x62A5;&#x9519;"> # </a></h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">if</span>(<span class="hljs-literal">true</span>){
    <span class="hljs-keyword">let</span> a = <span class="hljs-number">1</span>;
    <span class="hljs-keyword">let</span> a = <span class="hljs-number">2</span>; <span class="hljs-comment">//Identifier &apos;a&apos; has already been declared</span>
}
</code></pre>
<h4 id="t81.2.5 &#x4E0D;&#x5B58;&#x5728;&#x53D8;&#x91CF;&#x7684;&#x9884;&#x89E3;&#x91CA;">1.2.5 &#x4E0D;&#x5B58;&#x5728;&#x53D8;&#x91CF;&#x7684;&#x9884;&#x89E3;&#x91CA; <a href="#t81.2.5 &#x4E0D;&#x5B58;&#x5728;&#x53D8;&#x91CF;&#x7684;&#x9884;&#x89E3;&#x91CA;"> # </a></h4>
<pre><code class="lang-javascript"><span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">2</span>; i ++){
    <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&apos;inner&apos;</span>,i);
    <span class="hljs-keyword">let</span> i = <span class="hljs-number">100</span>;
}
</code></pre>
<blockquote>
<p>&#x7ED3;&#x679C;
<strong>i is not defined</strong></p>
</blockquote>
<h4 id="t91.2.6 &#x95ED;&#x5305;&#x7684;&#x65B0;&#x5199;&#x6CD5;">1.2.6 &#x95ED;&#x5305;&#x7684;&#x65B0;&#x5199;&#x6CD5; <a href="#t91.2.6 &#x95ED;&#x5305;&#x7684;&#x65B0;&#x5199;&#x6CD5;"> # </a></h4>
<p>&#x4EE5;&#x524D;</p>
<pre><code class="lang-javascript">;(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{

})();
</code></pre>
<p>&#x73B0;&#x5728;</p>
<pre><code class="lang-javascript">{
}
</code></pre>
<h2 id="t102. &#x5E38;&#x91CF;">2. &#x5E38;&#x91CF; <a href="#t102. &#x5E38;&#x91CF;"> # </a></h2>
<p>&#x4F7F;&#x7528;<code>const</code>&#x6211;&#x4EEC;&#x53EF;&#x4EE5;&#x53BB;&#x58F0;&#x660E;&#x4E00;&#x4E2A;&#x5E38;&#x91CF;&#xFF0C;&#x5E38;&#x91CF;&#x4E00;&#x65E6;&#x8D4B;&#x503C;&#x5C31;&#x4E0D;&#x80FD;&#x518D;&#x4FEE;&#x6539;&#x4E86;</p>
<h3 id="t112.1 &#x5E38;&#x91CF;&#x4E0D;&#x80FD;&#x91CD;&#x65B0;&#x8D4B;&#x503C;">2.1 &#x5E38;&#x91CF;&#x4E0D;&#x80FD;&#x91CD;&#x65B0;&#x8D4B;&#x503C; <a href="#t112.1 &#x5E38;&#x91CF;&#x4E0D;&#x80FD;&#x91CD;&#x65B0;&#x8D4B;&#x503C;"> # </a></h3>
<pre><code class="lang-javascript"><span class="hljs-keyword">const</span> MY_NAME = <span class="hljs-string">&apos;zfpx&apos;</span>;
MY_NAME = <span class="hljs-string">&apos;zfpx2&apos;</span>;<span class="hljs-comment">//Assignment to constant variable</span>
</code></pre>
<h3 id="t122.2 &#x53D8;&#x91CF;&#x503C;&#x53EF;&#x6539;&#x53D8;">2.2 &#x53D8;&#x91CF;&#x503C;&#x53EF;&#x6539;&#x53D8; <a href="#t122.2 &#x53D8;&#x91CF;&#x503C;&#x53EF;&#x6539;&#x53D8;"> # </a></h3>
<blockquote>
<p>&#x6CE8;&#x610F;<code>const</code>&#x9650;&#x5236;&#x7684;&#x662F;&#x4E0D;&#x80FD;&#x7ED9;&#x53D8;&#x91CF;&#x91CD;&#x65B0;&#x8D4B;&#x503C;&#xFF0C;&#x800C;&#x53D8;&#x91CF;&#x7684;&#x503C;&#x672C;&#x8EAB;&#x662F;&#x53EF;&#x4EE5;&#x6539;&#x53D8;&#x7684;,&#x4E0B;&#x9762;&#x7684;&#x64CD;&#x4F5C;&#x662F;&#x53EF;&#x4EE5;&#x7684;</p>
</blockquote>
<pre><code class="lang-javascript"><span class="hljs-keyword">const</span> names = [<span class="hljs-string">&apos;zfpx1&apos;</span>];
names.push(<span class="hljs-string">&apos;zfpx2&apos;</span>);
<span class="hljs-built_in">console</span>.log(names);
</code></pre>
<h3 id="t132.3 &#x4E0D;&#x540C;&#x7684;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;&#x53EF;&#x4EE5;&#x591A;&#x6B21;&#x5B9A;&#x4E49;">2.3 &#x4E0D;&#x540C;&#x7684;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;&#x53EF;&#x4EE5;&#x591A;&#x6B21;&#x5B9A;&#x4E49; <a href="#t132.3 &#x4E0D;&#x540C;&#x7684;&#x5757;&#x7EA7;&#x4F5C;&#x7528;&#x57DF;&#x53EF;&#x4EE5;&#x591A;&#x6B21;&#x5B9A;&#x4E49;"> # </a></h3>
<pre><code class="lang-javascript"><span class="hljs-keyword">const</span> A = <span class="hljs-string">&quot;0&quot;</span>;
{
    <span class="hljs-keyword">const</span> A = <span class="hljs-string">&quot;A&quot;</span>;
    <span class="hljs-built_in">console</span>.log(A)
}
{
    <span class="hljs-keyword">const</span> A = <span class="hljs-string">&quot;B&quot;</span>;
    <span class="hljs-built_in">console</span>.log(A)
}
<span class="hljs-built_in">console</span>.log(A)
</code></pre>
<blockquote>
<p>&#x7ED3;&#x679C;
A
B
0</p>
</blockquote>
<h2 id="t143. &#x89E3;&#x6784;">3. &#x89E3;&#x6784; <a href="#t143. &#x89E3;&#x6784;"> # </a></h2>
<h3 id="t153.1 &#x89E3;&#x6790;&#x6570;&#x7EC4;">3.1 &#x89E3;&#x6790;&#x6570;&#x7EC4; <a href="#t153.1 &#x89E3;&#x6790;&#x6570;&#x7EC4;"> # </a></h3>
<p>&#x89E3;&#x6784;&#x610F;&#x601D;&#x5C31;&#x662F;&#x5206;&#x89E3;&#x4E00;&#x4E2A;&#x4E1C;&#x897F;&#x7684;&#x7ED3;&#x6784;,&#x53EF;&#x4EE5;&#x7528;&#x4E00;&#x79CD;&#x7C7B;&#x4F3C;&#x6570;&#x7EC4;&#x7684;&#x65B9;&#x5F0F;&#x5B9A;&#x4E49;N&#x4E2A;&#x53D8;&#x91CF;&#xFF0C;&#x53EF;&#x4EE5;&#x5C06;&#x4E00;&#x4E2A;&#x6570;&#x7EC4;&#x4E2D;&#x7684;&#x503C;&#x6309;&#x7167;&#x89C4;&#x5219;&#x8D4B;&#x503C;&#x8FC7;&#x53BB;&#x3002;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> [name,age] = [<span class="hljs-string">&apos;zfpx&apos;</span>,<span class="hljs-number">8</span>];
<span class="hljs-built_in">console</span>.log(name,age);
</code></pre>
<h3 id="t163.2 &#x5D4C;&#x5957;&#x8D4B;&#x503C;">3.2 &#x5D4C;&#x5957;&#x8D4B;&#x503C; <a href="#t163.2 &#x5D4C;&#x5957;&#x8D4B;&#x503C;"> # </a></h3>
<pre><code class="lang-javascript">    <span class="hljs-keyword">let</span> [x, [y], z] = [<span class="hljs-number">1</span>, [<span class="hljs-number">2.1</span>, <span class="hljs-number">2.2</span>]];
    <span class="hljs-built_in">console</span>.log(x, y, z);

    <span class="hljs-keyword">let</span> [x, [y,z]] = [<span class="hljs-number">1</span>, [<span class="hljs-number">2.1</span>, <span class="hljs-number">2.2</span>]];
    <span class="hljs-built_in">console</span>.log(x,y,z);

    <span class="hljs-keyword">let</span> [json,arr,num] = [{<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;zfpx&apos;</span>},[<span class="hljs-number">1</span>,<span class="hljs-number">2</span>],<span class="hljs-number">3</span>];
    <span class="hljs-built_in">console</span>.log(json,arr,num);
</code></pre>
<blockquote>
<p>1 2.1 undefined
1 2.1 2.2
{ name: &apos;zfpx&apos; } [ 1, 2 ] 3</p>
</blockquote>
<h3 id="t173.3 &#x7701;&#x7565;&#x8D4B;&#x503C;">3.3 &#x7701;&#x7565;&#x8D4B;&#x503C; <a href="#t173.3 &#x7701;&#x7565;&#x8D4B;&#x503C;"> # </a></h3>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> [, , x] = [<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>];
<span class="hljs-built_in">console</span>.log(x);
</code></pre>
<h3 id="t183.4 &#x89E3;&#x6784;&#x5BF9;&#x8C61;">3.4 &#x89E3;&#x6784;&#x5BF9;&#x8C61; <a href="#t183.4 &#x89E3;&#x6784;&#x5BF9;&#x8C61;"> # </a></h3>
<p>&#x5BF9;&#x8C61;&#x4E5F;&#x53EF;&#x4EE5;&#x88AB;&#x89E3;&#x6784;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> obj = {<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;zfpx&apos;</span>,<span class="hljs-attr">age</span>:<span class="hljs-number">8</span>};
<span class="hljs-comment">//&#x5BF9;&#x8C61;&#x91CC;&#x7684;name&#x5C5E;&#x6027;&#x7684;&#x503C;&#x4F1A;&#x4EA4;&#x7ED9;name&#x8FD9;&#x4E2A;&#x53D8;&#x91CF;&#xFF0C;age&#x7684;&#x503C;&#x4F1A;&#x4EA4;&#x7ED9;age&#x8FD9;&#x4E2A;&#x53D8;&#x91CF;</span>
<span class="hljs-keyword">var</span> {name,age} = obj;
<span class="hljs-comment">//&#x5BF9;&#x8C61;&#x91CC;&#x7684;name&#x5C5E;&#x6027;&#x7684;&#x503C;&#x4F1A;&#x4EA4;&#x7ED9;myname&#x8FD9;&#x4E2A;&#x53D8;&#x91CF;&#xFF0C;age&#x7684;&#x503C;&#x4F1A;&#x4EA4;&#x7ED9;myage&#x8FD9;&#x4E2A;&#x53D8;&#x91CF;</span>
<span class="hljs-keyword">let</span> {<span class="hljs-attr">name</span>: myname, <span class="hljs-attr">age</span>: myage} = obj;
<span class="hljs-built_in">console</span>.log(name,age,myname,myage);
</code></pre>
<h3 id="t193.5 &#x9ED8;&#x8BA4;&#x503C;">3.5 &#x9ED8;&#x8BA4;&#x503C; <a href="#t193.5 &#x9ED8;&#x8BA4;&#x503C;"> # </a></h3>
<p>&#x5728;&#x8D4B;&#x503C;&#x548C;&#x4F20;&#x53C2;&#x7684;&#x65F6;&#x5019;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x9ED8;&#x8BA4;&#x503C;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> [a = <span class="hljs-string">&quot;a&quot;</span>, b = <span class="hljs-string">&quot;b&quot;</span>, c =<span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">&apos;C&#x5FC5;&#x987B;&#x6307;&#x5B9A;&apos;</span>)] = [<span class="hljs-number">1</span>, , <span class="hljs-number">3</span>];
<span class="hljs-built_in">console</span>.log(a, b, c);

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">ajax</span> (<span class="hljs-params">options</span>) </span>{
    <span class="hljs-keyword">var</span> method = options.method || <span class="hljs-string">&quot;get&quot;</span>;
    <span class="hljs-keyword">var</span> data = options.data || {};
    <span class="hljs-comment">//.....</span>
}
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">ajax</span> (<span class="hljs-params">{method = <span class="hljs-string">&quot;get&quot;</span>, data}</span>) </span>{
    <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">arguments</span>);
}
ajax({
    <span class="hljs-attr">method</span>: <span class="hljs-string">&quot;post&quot;</span>,
    <span class="hljs-attr">data</span>: {<span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;zfpx&quot;</span>}
});

</code></pre>
<h2 id="t204. &#x5B57;&#x7B26;&#x4E32;">4. &#x5B57;&#x7B26;&#x4E32; <a href="#t204. &#x5B57;&#x7B26;&#x4E32;"> # </a></h2>
<h3 id="t214.1 &#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;">4.1 &#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32; <a href="#t214.1 &#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;"> # </a></h3>
<p>&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;&#x7528;&#x53CD;&#x5F15;&#x53F7;(&#x6570;&#x5B57;1&#x5DE6;&#x8FB9;&#x7684;&#x90A3;&#x4E2A;&#x952E;)&#x5305;&#x542B;&#xFF0C;&#x5176;&#x4E2D;&#x7684;&#x53D8;&#x91CF;&#x7528;<code>${}</code>&#x62EC;&#x8D77;&#x6765;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> name = <span class="hljs-string">&apos;zfpx&apos;</span>,age = <span class="hljs-number">8</span>;
<span class="hljs-keyword">let</span> desc = <span class="hljs-string">`<span class="hljs-subst">${name}</span> is <span class="hljs-subst">${age}</span> old!`</span>;
<span class="hljs-built_in">console</span>.log(desc);

<span class="hljs-comment">//&#x6240;&#x6709;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x7A7A;&#x683C;&#x548C;&#x6362;&#x884C;&#xFF0C;&#x90FD;&#x662F;&#x88AB;&#x4FDD;&#x7559;&#x7684;</span>
<span class="hljs-keyword">var</span> str = <span class="hljs-string">`&lt;ul&gt;
&lt;li&gt;a&lt;/li&gt;
&lt;li&gt;b&lt;/li&gt;
&lt;/ul&gt;`</span>;
<span class="hljs-built_in">console</span>.log(str);
</code></pre>
<blockquote>
<p>&#x5176;&#x4E2D;&#x7684;&#x53D8;&#x91CF;&#x4F1A;&#x7528;&#x53D8;&#x91CF;&#x7684;&#x503C;&#x66FF;&#x6362;&#x6389;</p>
</blockquote>
<pre><code>function replace(desc){
  return desc.replace(/\$\{([^}]+)\}/g,function(matched,key){
    return eval(key);
  });
}
</code></pre><h3 id="t224.2 &#x5E26;&#x6807;&#x7B7E;&#x7684;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;">4.2 &#x5E26;&#x6807;&#x7B7E;&#x7684;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32; <a href="#t224.2 &#x5E26;&#x6807;&#x7B7E;&#x7684;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;"> # </a></h3>
<p>&#x53EF;&#x4EE5;&#x5728;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x524D;&#x9762;&#x6DFB;&#x52A0;&#x4E00;&#x4E2A;&#x6807;&#x7B7E;&#xFF0C;&#x8FD9;&#x4E2A;&#x6807;&#x7B7E;&#x53EF;&#x4EE5;&#x53BB;&#x5904;&#x7406;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;
&#x6807;&#x7B7E;&#x5176;&#x5B9E;&#x5C31;&#x662F;&#x4E00;&#x4E2A;&#x51FD;&#x6570;,&#x51FD;&#x6570;&#x53EF;&#x4EE5;&#x63A5;&#x6536;&#x4E24;&#x4E2A;&#x53C2;&#x6570;,&#x4E00;&#x4E2A;&#x662F;<code>strings</code>,&#x5C31;&#x662F;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;&#x91CC;&#x7684;&#x6BCF;&#x4E2A;&#x90E8;&#x5206;&#x7684;&#x5B57;&#x7B26;
&#x8FD8;&#x6709;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;<code>rest</code>&#x7684;&#x5F62;&#x5F0F;<code>values</code>,&#x8FD9;&#x4E2A;&#x53C2;&#x6570;&#x91CC;&#x9762;&#x662F;&#x6A21;&#x677F;&#x5B57;&#x7B26;&#x4E32;&#x91CC;&#x7684;&#x503C;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> name = <span class="hljs-string">&apos;zfpx&apos;</span>,age = <span class="hljs-number">8</span>;
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">desc</span>(<span class="hljs-params">strings,...values</span>)</span>{
    <span class="hljs-built_in">console</span>.log(strings,values);
}
desc<span class="hljs-string">`<span class="hljs-subst">${name}</span> is <span class="hljs-subst">${age}</span> old!`</span>;

</code></pre>
<h3 id="t234.3  &#x5B57;&#x7B26;&#x4E32;&#x65B0;&#x65B9;&#x6CD5;">4.3  &#x5B57;&#x7B26;&#x4E32;&#x65B0;&#x65B9;&#x6CD5; <a href="#t234.3  &#x5B57;&#x7B26;&#x4E32;&#x65B0;&#x65B9;&#x6CD5;"> # </a></h3>
<ul>
<li>includes()&#xFF1A;&#x8FD4;&#x56DE;&#x5E03;&#x5C14;&#x503C;&#xFF0C;&#x8868;&#x793A;&#x662F;&#x5426;&#x627E;&#x5230;&#x4E86;&#x53C2;&#x6570;&#x5B57;&#x7B26;&#x4E32;&#x3002;</li>
<li>startsWith()&#xFF1A;&#x8FD4;&#x56DE;&#x5E03;&#x5C14;&#x503C;&#xFF0C;&#x8868;&#x793A;&#x53C2;&#x6570;&#x5B57;&#x7B26;&#x4E32;&#x662F;&#x5426;&#x5728;&#x6E90;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5934;&#x90E8;&#x3002;</li>
<li>endsWith()&#xFF1A;&#x8FD4;&#x56DE;&#x5E03;&#x5C14;&#x503C;&#xFF0C;&#x8868;&#x793A;&#x53C2;&#x6570;&#x5B57;&#x7B26;&#x4E32;&#x662F;&#x5426;&#x5728;&#x6E90;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5C3E;&#x90E8;&#x3002;</li>
</ul>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> s = <span class="hljs-string">&apos;zfpx&apos;</span>;
s.startsWith(<span class="hljs-string">&apos;z&apos;</span>) <span class="hljs-comment">// true</span>
s.endsWith(<span class="hljs-string">&apos;x&apos;</span>) <span class="hljs-comment">// true</span>
s.includes(<span class="hljs-string">&apos;p&apos;</span>) <span class="hljs-comment">// true</span>
</code></pre>
<p>&#x7B2C;&#x4E8C;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x8868;&#x793A;&#x5F00;&#x59CB;&#x641C;&#x7D22;&#x7684;&#x4F4D;&#x7F6E;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> s = <span class="hljs-string">&apos;zfpx&apos;</span>;
<span class="hljs-built_in">console</span>.log(s.startsWith(<span class="hljs-string">&apos;p&apos;</span>,<span class="hljs-number">2</span>)); <span class="hljs-comment">// true</span>
<span class="hljs-built_in">console</span>.log(s.endsWith(<span class="hljs-string">&apos;f&apos;</span>,<span class="hljs-number">2</span>)); <span class="hljs-comment">// true</span>
<span class="hljs-built_in">console</span>.log(s.includes(<span class="hljs-string">&apos;f&apos;</span>,<span class="hljs-number">2</span>)); <span class="hljs-comment">// false</span>
</code></pre>
<blockquote>
<p>endsWith&#x7684;&#x884C;&#x4E3A;&#x4E0E;&#x5176;&#x4ED6;&#x4E24;&#x4E2A;&#x65B9;&#x6CD5;&#x6709;&#x6240;&#x4E0D;&#x540C;&#x3002;&#x5B83;&#x9488;&#x5BF9;&#x524D;n&#x4E2A;&#x5B57;&#x7B26;&#xFF0C;&#x800C;&#x5176;&#x4ED6;&#x4E24;&#x4E2A;&#x65B9;&#x6CD5;&#x9488;&#x5BF9;&#x4ECE;&#x7B2C;n&#x4E2A;&#x4F4D;&#x7F6E;&#x76F4;&#x5230;&#x5B57;&#x7B26;&#x4E32;&#x7ED3;&#x675F;</p>
</blockquote>
<h3 id="t244.4 repeat">4.4 repeat <a href="#t244.4 repeat"> # </a></h3>
<p>repeat&#x65B9;&#x6CD5;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x65B0;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x8868;&#x793A;&#x5C06;&#x539F;&#x5B57;&#x7B26;&#x4E32;&#x91CD;&#x590D;n&#x6B21;&#x3002;</p>
<pre><code class="lang-javascript"><span class="hljs-string">&apos;x&apos;</span>.repeat(<span class="hljs-number">3</span>);
<span class="hljs-string">&apos;x&apos;</span>.repeat(<span class="hljs-number">0</span>);
</code></pre>
<h2 id="t255. &#x51FD;&#x6570;">5. &#x51FD;&#x6570; <a href="#t255. &#x51FD;&#x6570;"> # </a></h2>
<h3 id="t265.1 &#x9ED8;&#x8BA4;&#x53C2;&#x6570;">5.1 &#x9ED8;&#x8BA4;&#x53C2;&#x6570; <a href="#t265.1 &#x9ED8;&#x8BA4;&#x53C2;&#x6570;"> # </a></h3>
<p>&#x53EF;&#x4EE5;&#x7ED9;&#x5B9A;&#x4E49;&#x7684;&#x51FD;&#x6570;&#x63A5;&#x6536;&#x7684;&#x53C2;&#x6570;&#x8BBE;&#x7F6E;&#x9ED8;&#x8BA4;&#x7684;&#x503C;
&#x5728;&#x6267;&#x884C;&#x8FD9;&#x4E2A;&#x51FD;&#x6570;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A;&#x51FD;&#x6570;&#x7684;&#x53C2;&#x6570;&#x7684;&#x503C;&#xFF0C;&#x5C31;&#x4F1A;&#x4F7F;&#x7528;&#x53C2;&#x6570;&#x7684;&#x8FD9;&#x4E9B;&#x9ED8;&#x8BA4;&#x7684;&#x503C;</p>
<pre><code class="lang-javascript"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">ajax</span>(<span class="hljs-params">url,method=<span class="hljs-string">&apos;GET&apos;</span>,dataType=<span class="hljs-string">&quot;json&quot;</span></span>)</span>{
  <span class="hljs-built_in">console</span>.log(url);
  <span class="hljs-built_in">console</span>.log(method);
  <span class="hljs-built_in">console</span>.log(dataType);
}
</code></pre>
<h3 id="t275.2 &#x5C55;&#x5F00;&#x64CD;&#x4F5C;&#x7B26;">5.2 &#x5C55;&#x5F00;&#x64CD;&#x4F5C;&#x7B26; <a href="#t275.2 &#x5C55;&#x5F00;&#x64CD;&#x4F5C;&#x7B26;"> # </a></h3>
<p>&#x628A;...&#x653E;&#x5728;&#x6570;&#x7EC4;&#x524D;&#x9762;&#x53EF;&#x4EE5;&#x628A;&#x4E00;&#x4E2A;&#x6570;&#x7EC4;&#x8FDB;&#x884C;&#x5C55;&#x5F00;,&#x53EF;&#x4EE5;&#x628A;&#x4E00;&#x4E2A;&#x6570;&#x7EC4;&#x76F4;&#x63A5;&#x4F20;&#x5165;&#x4E00;&#x4E2A;&#x51FD;&#x6570;&#x800C;&#x4E0D;&#x9700;&#x8981;&#x4F7F;&#x7528;<code>apply</code></p>
<pre><code class="lang-javascript"><span class="hljs-comment">//&#x4F20;&#x5165;&#x53C2;&#x6570;</span>
<span class="hljs-keyword">let</span> print = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">a,b,c</span>)</span>{
    <span class="hljs-built_in">console</span>.log(a,b,c);
}
print([<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>]);
print(...[<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>]);

<span class="hljs-comment">// &#x53EF;&#x4EE5;&#x66FF;&#x4EE3;apply</span>
<span class="hljs-keyword">var</span> m1 = <span class="hljs-built_in">Math</span>.max.apply(<span class="hljs-literal">null</span>, [<span class="hljs-number">8</span>, <span class="hljs-number">9</span>, <span class="hljs-number">4</span>, <span class="hljs-number">1</span>]);
<span class="hljs-keyword">var</span> m2 = <span class="hljs-built_in">Math</span>.max(...[<span class="hljs-number">8</span>, <span class="hljs-number">9</span>, <span class="hljs-number">4</span>, <span class="hljs-number">1</span>]);

<span class="hljs-comment">// &#x53EF;&#x4EE5;&#x66FF;&#x4EE3;concat</span>
<span class="hljs-keyword">var</span> arr1 = [<span class="hljs-number">1</span>, <span class="hljs-number">3</span>];
<span class="hljs-keyword">var</span> arr2 = [<span class="hljs-number">3</span>, <span class="hljs-number">5</span>];
<span class="hljs-keyword">var</span> arr3 = arr1.concat(arr2);
<span class="hljs-keyword">var</span> arr4 = [...arr1, ...arr2];
<span class="hljs-built_in">console</span>.log(arr3,arr4);

<span class="hljs-comment">//&#x7C7B;&#x6570;&#x7EC4;&#x7684;&#x8F6C;&#x6570;&#x7EC4;</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">max</span>(<span class="hljs-params">a,b,c</span>) </span>{
    <span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Math</span>.max(...arguments));
}
max(<span class="hljs-number">1</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>);
</code></pre>
<h3 id="t285.3 &#x5269;&#x4F59;&#x64CD;&#x4F5C;&#x7B26;">5.3 &#x5269;&#x4F59;&#x64CD;&#x4F5C;&#x7B26; <a href="#t285.3 &#x5269;&#x4F59;&#x64CD;&#x4F5C;&#x7B26;"> # </a></h3>
<p>&#x5269;&#x4F59;&#x64CD;&#x4F5C;&#x7B26;&#x53EF;&#x4EE5;&#x628A;&#x5176;&#x4F59;&#x7684;&#x53C2;&#x6570;&#x7684;&#x503C;&#x90FD;&#x653E;&#x5230;&#x4E00;&#x4E2A;&#x53EB;<code>b</code>&#x7684;&#x6570;&#x7EC4;&#x91CC;&#x9762;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> rest = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">a,...rest</span>)</span>{
    <span class="hljs-built_in">console</span>.log(a,rest);
}
rest(<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>);
</code></pre>
<h3 id="t295.4 &#x89E3;&#x6784;&#x53C2;&#x6570;">5.4 &#x89E3;&#x6784;&#x53C2;&#x6570; <a href="#t295.4 &#x89E3;&#x6784;&#x53C2;&#x6570;"> # </a></h3>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> destruct = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">{name,age}</span>)</span>{
    <span class="hljs-built_in">console</span>.log(name,age);
}
destruct({<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;zfpx&apos;</span>,<span class="hljs-attr">age</span>:<span class="hljs-number">6</span>});
</code></pre>
<h3 id="t305.5 &#x51FD;&#x6570;&#x7684;&#x540D;&#x5B57;">5.5 &#x51FD;&#x6570;&#x7684;&#x540D;&#x5B57; <a href="#t305.5 &#x51FD;&#x6570;&#x7684;&#x540D;&#x5B57;"> # </a></h3>
<p>ECMAScript 6 &#x7ED9;&#x51FD;&#x6570;&#x6DFB;&#x52A0;&#x4E86;&#x4E00;&#x4E2A;<code>name</code>&#x5C5E;&#x6027;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> desc = <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">descname</span>(<span class="hljs-params"></span>)</span>{}
<span class="hljs-built_in">console</span>.log(desc.name);
</code></pre>
<h3 id="t315.6 &#x7BAD;&#x5934;&#x51FD;&#x6570;">5.6 &#x7BAD;&#x5934;&#x51FD;&#x6570; <a href="#t315.6 &#x7BAD;&#x5934;&#x51FD;&#x6570;"> # </a></h3>
<p>&#x7BAD;&#x5934;&#x51FD;&#x6570;&#x7B80;&#x5316;&#x4E86;&#x51FD;&#x6570;&#x7684;&#x7684;&#x5B9A;&#x4E49;&#x65B9;&#x5F0F;&#xFF0C;&#x4E00;&#x822C;&#x4EE5; &quot;=&gt;&quot; &#x64CD;&#x4F5C;&#x7B26;&#x5DE6;&#x8FB9;&#x4E3A;&#x8F93;&#x5165;&#x7684;&#x53C2;&#x6570;&#xFF0C;&#x800C;&#x53F3;&#x8FB9;&#x5219;&#x662F;&#x8FDB;&#x884C;&#x7684;&#x64CD;&#x4F5C;&#x4EE5;&#x53CA;&#x8FD4;&#x56DE;&#x7684;&#x503C;<code>inputs=&gt;output</code></p>
<pre><code class="lang-javascript">[<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>].forEach(<span class="hljs-function"><span class="hljs-params">val</span> =&gt;</span> <span class="hljs-built_in">console</span>.log(val)););
</code></pre>
<blockquote>
<p>&#x8F93;&#x5165;&#x53C2;&#x6570;&#x5982;&#x679C;&#x591A;&#x4E8E;&#x4E00;&#x4E2A;&#x8981;&#x7528;()&#x5305;&#x8D77;&#x6765;&#xFF0C;&#x51FD;&#x6570;&#x4F53;&#x5982;&#x679C;&#x6709;&#x591A;&#x6761;&#x8BED;&#x53E5;&#x9700;&#x8981;&#x7528;{}&#x5305;&#x8D77;&#x6765;</p>
</blockquote>
<p>&#x7BAD;&#x5934;&#x51FD;&#x6570;&#x6839;&#x672C;&#x6CA1;&#x6709;&#x81EA;&#x5DF1;&#x7684;this&#xFF0C;&#x5BFC;&#x81F4;&#x5185;&#x90E8;&#x7684;this&#x5C31;&#x662F;&#x5916;&#x5C42;&#x4EE3;&#x7801;&#x5757;&#x7684;this&#x3002;
&#x6B63;&#x662F;&#x56E0;&#x4E3A;&#x5B83;&#x6CA1;&#x6709;this&#xFF0C;&#x4ECE;&#x800C;&#x907F;&#x514D;&#x4E86;this&#x6307;&#x5411;&#x7684;&#x95EE;&#x9898;&#x3002;</p>
<pre><code class="lang-diff">var person = {
    name:&apos;zfpx&apos;,
    getName:function(){
<span class="hljs-deletion">-        setTimeout(function(){console.log(this);},1000); //&#x5728;&#x6D4F;&#x89C8;&#x5668;&#x6267;&#x884C;&#x7684;&#x8BDD;this&#x6307;&#x5411;window</span>
<span class="hljs-addition">+        setTimeout(() =&gt; console.log(this),1000);//&#x5728;&#x6D4F;&#x89C8;&#x5668;&#x6267;&#x884C;&#x7684;&#x8BDD;this&#x6307;&#x5411;person</span>
    }
}
person.getName();
</code></pre>
<h3 id="t325.7 &#x6570;&#x7EC4;&#x7684;&#x65B0;&#x65B9;&#x6CD5;">5.7 &#x6570;&#x7EC4;&#x7684;&#x65B0;&#x65B9;&#x6CD5; <a href="#t325.7 &#x6570;&#x7EC4;&#x7684;&#x65B0;&#x65B9;&#x6CD5;"> # </a></h3>
<h4 id="t335.7.1 from">5.7.1 from <a href="#t335.7.1 from"> # </a></h4>
<p>&#x5C06;&#x4E00;&#x4E2A;&#x6570;&#x7EC4;&#x6216;&#x8005;&#x7C7B;&#x6570;&#x7EC4;&#x53D8;&#x6210;&#x6570;&#x7EC4;,&#x4F1A;&#x590D;&#x5236;&#x4E00;&#x4EFD;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> newArr = <span class="hljs-built_in">Array</span>.from(oldArr);
</code></pre>
<h4 id="t345.7.2 Array.of">5.7.2 Array.of <a href="#t345.7.2 Array.of"> # </a></h4>
<p>of&#x662F;&#x4E3A;&#x4E86;&#x5C06;&#x4E00;&#x7EC4;&#x6570;&#x503C;,&#x8F6C;&#x6362;&#x4E3A;&#x6570;&#x7EC4;</p>
<pre><code class="lang-javascript"><span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Array</span>(<span class="hljs-number">3</span>), <span class="hljs-built_in">Array</span>(<span class="hljs-number">3</span>).length);
<span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Array</span>.of(<span class="hljs-number">3</span>), <span class="hljs-built_in">Array</span>.of(<span class="hljs-number">3</span>).length);
</code></pre>
<h4 id="t355.7.3 copyWithin">5.7.3 copyWithin <a href="#t355.7.3 copyWithin"> # </a></h4>
<p>Array.prototype.copyWithin(target, start = 0, end = this.length)
&#x8986;&#x76D6;&#x76EE;&#x6807;&#x7684;&#x4E0B;&#x6807; &#x5F00;&#x59CB;&#x7684;&#x4E0B;&#x6807; &#x7ED3;&#x675F;&#x7684;&#x540E;&#x4E00;&#x4E2A;&#x7684;&#x4E0B;&#x6807;</p>
<pre><code class="lang-javascript">[<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>].copyWithin(<span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span>);
</code></pre>
<h4 id="t365.7.4 find">5.7.4 find <a href="#t365.7.4 find"> # </a></h4>
<p>&#x67E5;&#x5230;&#x5BF9;&#x5E94;&#x7684;&#x5143;&#x7D20;&#x548C;&#x7D22;&#x5F15;</p>
<pre><code>let arr = [1, 2 ,3, 3, 4, 5];
    let find = arr.find((item, index, arr) =&gt; {
        return item === 3;
    });
    let findIndex = arr.findIndex((item, index, arr) =&gt; {
        return item === 3;
    });

    console.log(find, findIndex);
</code></pre><h4 id="t375.7.5 fill">5.7.5 fill <a href="#t375.7.5 fill"> # </a></h4>
<p>&#x5C31;&#x662F;&#x586B;&#x5145;&#x6570;&#x7EC4;&#x7684;&#x610F;&#x601D; &#x4F1A;&#x66F4;&#x6539;&#x539F;&#x6570;&#x7EC4;
Array.prototype.fill(value, start, end = this.length);</p>
<pre><code> let arr = [1, 2, 3, 4, 5, 6];
 arr.fill(&apos;a&apos;, 1, 2);
 console.log(arr);
</code></pre><h4 id="t385.7.5 map">5.7.5 map <a href="#t385.7.5 map"> # </a></h4>
<h4 id="t395.7.6 reduce">5.7.6 reduce <a href="#t395.7.6 reduce"> # </a></h4>
<h4 id="t405.7.7 filter">5.7.7 filter <a href="#t405.7.7 filter"> # </a></h4>
<h4 id="t415.7.8 forEach">5.7.8 forEach <a href="#t415.7.8 forEach"> # </a></h4>
<h2 id="t426. &#x5BF9;&#x8C61;">6. &#x5BF9;&#x8C61; <a href="#t426. &#x5BF9;&#x8C61;"> # </a></h2>
<h3 id="t436.1 &#x5BF9;&#x8C61;&#x5B57;&#x9762;&#x91CF;">6.1 &#x5BF9;&#x8C61;&#x5B57;&#x9762;&#x91CF; <a href="#t436.1 &#x5BF9;&#x8C61;&#x5B57;&#x9762;&#x91CF;"> # </a></h3>
<p>&#x5982;&#x679C;&#x4F60;&#x60F3;&#x5728;&#x5BF9;&#x8C61;&#x91CC;&#x6DFB;&#x52A0;&#x8DDF;&#x53D8;&#x91CF;&#x540D;&#x4E00;&#x6837;&#x7684;&#x5C5E;&#x6027;&#xFF0C;&#x5E76;&#x4E14;&#x5C5E;&#x6027;&#x7684;&#x503C;&#x5C31;&#x662F;&#x53D8;&#x91CF;&#x8868;&#x793A;&#x7684;&#x503C;&#x5C31;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5728;&#x5BF9;&#x8C61;&#x91CC;&#x52A0;&#x4E0A;&#x8FD9;&#x4E9B;&#x5C5E;&#x6027;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> name = <span class="hljs-string">&apos;zfpx&apos;</span>;
<span class="hljs-keyword">let</span> age = <span class="hljs-number">8</span>;
<span class="hljs-keyword">let</span> getName = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-built_in">console</span>.log(<span class="hljs-keyword">this</span>.name);
}
<span class="hljs-keyword">let</span> person = {
    name,
    age,
    getName
}
person.getName();
</code></pre>
<h3 id="t446.2 Object.is">6.2 Object.is <a href="#t446.2 Object.is"> # </a></h3>
<p>&#x5BF9;&#x6BD4;&#x4E24;&#x4E2A;&#x503C;&#x662F;&#x5426;&#x76F8;&#x7B49;</p>
<pre><code class="lang-javascript"><span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Object</span>.is(<span class="hljs-literal">NaN</span>,<span class="hljs-literal">NaN</span>));

</code></pre>
<h3 id="t456.3 Object.assign">6.3 Object.assign <a href="#t456.3 Object.assign"> # </a></h3>
<p>&#x628A;&#x591A;&#x4E2A;&#x5BF9;&#x8C61;&#x7684;&#x5C5E;&#x6027;&#x590D;&#x5236;&#x5230;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x4E2D;,&#x7B2C;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#x662F;&#x590D;&#x5236;&#x7684;&#x5BF9;&#x8C61;,&#x4ECE;&#x7B2C;&#x4E8C;&#x4E2A;&#x53C2;&#x6570;&#x5F00;&#x59CB;&#x5F80;&#x540E;,&#x90FD;&#x662F;&#x590D;&#x5236;&#x7684;&#x6E90;&#x5BF9;&#x8C61;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> nameObj = {<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;zfpx&apos;</span>};
<span class="hljs-keyword">var</span> ageObj = {<span class="hljs-attr">age</span>:<span class="hljs-number">8</span>};
<span class="hljs-keyword">var</span> obj = {};
<span class="hljs-built_in">Object</span>.assign(obj,nameObj,ageObj);
<span class="hljs-built_in">console</span>.log(obj);

<span class="hljs-comment">//&#x514B;&#x9686;&#x5BF9;&#x8C61;</span>
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">clone</span> (<span class="hljs-params">obj</span>) </span>{
  <span class="hljs-keyword">return</span> <span class="hljs-built_in">Object</span>.assign({}, obj);
}
</code></pre>
<h3 id="t466.4 Object.setPrototypeOf">6.4 Object.setPrototypeOf <a href="#t466.4 Object.setPrototypeOf"> # </a></h3>
<p>&#x5C06;&#x4E00;&#x4E2A;&#x6307;&#x5B9A;&#x7684;&#x5BF9;&#x8C61;&#x7684;&#x539F;&#x578B;&#x8BBE;&#x7F6E;&#x4E3A;&#x53E6;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;&#x6216;&#x8005;null</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> obj1  = {<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;zfpx1&apos;</span>};
<span class="hljs-keyword">var</span> obj2 =  {<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;zfpx2&apos;</span>};
<span class="hljs-keyword">var</span> obj = {};
<span class="hljs-built_in">Object</span>.setPrototypeOf(obj,obj1);
<span class="hljs-built_in">console</span>.log(obj.name);
<span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Object</span>.getPrototypeOf(obj));
<span class="hljs-built_in">Object</span>.setPrototypeOf(obj,obj2);
<span class="hljs-built_in">console</span>.log(obj.name);
<span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Object</span>.getPrototypeOf(obj));
</code></pre>
<h3 id="t476.5 proto">6.5 proto <a href="#t476.5 proto"> # </a></h3>
<p>&#x76F4;&#x63A5;&#x5728;&#x5BF9;&#x8C61;&#x8868;&#x8FBE;&#x5F0F;&#x4E2D;&#x8BBE;&#x7F6E;prototype</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> obj1  = {<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;zfpx1&apos;</span>};
<span class="hljs-keyword">var</span> obj3 = {
    <span class="hljs-attr">__proto__</span>:obj1
}
<span class="hljs-built_in">console</span>.log(obj3.name);
<span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Object</span>.getPrototypeOf(obj3));
</code></pre>
<h3 id="t486.6 super">6.6 super <a href="#t486.6 super"> # </a></h3>
<p>&#x901A;&#x8FC7;super&#x53EF;&#x4EE5;&#x8C03;&#x7528;prototype&#x4E0A;&#x7684;&#x5C5E;&#x6027;&#x6216;&#x65B9;&#x6CD5;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">let</span> person ={
    eat(){
        <span class="hljs-keyword">return</span> <span class="hljs-string">&apos;milk&apos;</span>;
    }
}
<span class="hljs-keyword">let</span> student = {
    <span class="hljs-attr">__proto__</span>:person,
    eat(){
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">super</span>.eat()+<span class="hljs-string">&apos; bread&apos;</span>
    }
}
<span class="hljs-built_in">console</span>.log(student.eat());
</code></pre>
<h2 id="t497. &#x7C7B;">7. &#x7C7B; <a href="#t497. &#x7C7B;"> # </a></h2>
<h3 id="t507.1 class">7.1 class <a href="#t507.1 class"> # </a></h3>
<p>&#x4F7F;&#x7528;<code>class</code>&#x8FD9;&#x4E2A;&#x5173;&#x952E;&#x8BCD;&#x5B9A;&#x4E49;&#x4E00;&#x4E2A;&#x7C7B;,&#x57FA;&#x4E8E;&#x8FD9;&#x4E2A;&#x7C7B;&#x521B;&#x5EFA;&#x5B9E;&#x4F8B;&#x4EE5;&#x540E;&#x4F1A;&#x81EA;&#x52A8;&#x6267;&#x884C;<code>constructor</code>&#x65B9;&#x6CD5;,&#x6B64;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x521D;&#x59CB;&#x5316;</p>
<pre><code class="lang-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span> </span>{
    <span class="hljs-keyword">constructor</span>(name){
        <span class="hljs-keyword">this</span>.name = name;
    }
    getName(){
        <span class="hljs-built_in">console</span>.log(<span class="hljs-keyword">this</span>.name);
    }
}
<span class="hljs-keyword">let</span> person = <span class="hljs-keyword">new</span> Person(<span class="hljs-string">&apos;zfpx&apos;</span>);
person.getName();
</code></pre>
<h3 id="t517.2 get&#x4E0E;set">7.2 get&#x4E0E;set <a href="#t517.2 get&#x4E0E;set"> # </a></h3>
<p><code>getter</code>&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x5F97;&#x83B7;&#x53D6;&#x5C5E;&#x6027;&#xFF0C;<code>setter</code>&#x53EF;&#x4EE5;&#x53BB;&#x8BBE;&#x7F6E;&#x5C5E;&#x6027;</p>
<pre><code class="lang-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span> </span>{
    <span class="hljs-keyword">constructor</span>(){
        <span class="hljs-keyword">this</span>.hobbies = [];
    }
    set hobby(hobby){
        <span class="hljs-keyword">this</span>.hobbies.push(hobby);
    }
    get hobby(){
        <span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.hobbies;
    }
}
<span class="hljs-keyword">let</span> person = <span class="hljs-keyword">new</span> Person();
person.hobby = <span class="hljs-string">&apos;basketball&apos;</span>;
person.hobby = <span class="hljs-string">&apos;football&apos;</span>;
<span class="hljs-built_in">console</span>.log(person.hobby);
</code></pre>
<h3 id="t527.3 &#x9759;&#x6001;&#x65B9;&#x6CD5;-static">7.3 &#x9759;&#x6001;&#x65B9;&#x6CD5;-static <a href="#t527.3 &#x9759;&#x6001;&#x65B9;&#x6CD5;-static"> # </a></h3>
<p>&#x5728;&#x7C7B;&#x91CC;&#x9762;&#x6DFB;&#x52A0;&#x9759;&#x6001;&#x7684;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;<code>static</code>&#x8FD9;&#x4E2A;&#x5173;&#x952E;&#x8BCD;&#xFF0C;&#x9759;&#x6001;&#x65B9;&#x6CD5;&#x5C31;&#x662F;&#x4E0D;&#x9700;&#x8981;&#x5B9E;&#x4F8B;&#x5316;&#x7C7B;&#x5C31;&#x80FD;&#x4F7F;&#x7528;&#x7684;&#x65B9;&#x6CD5;</p>
<pre><code class="lang-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span> </span>{
   <span class="hljs-keyword">static</span> add(a,b){
       <span class="hljs-keyword">return</span> a+b;
   }
}
<span class="hljs-built_in">console</span>.log(Person.add(<span class="hljs-number">1</span>,<span class="hljs-number">2</span>));

</code></pre>
<h3 id="t537.4 &#x7EE7;&#x627F;extends">7.4 &#x7EE7;&#x627F;extends <a href="#t537.4 &#x7EE7;&#x627F;extends"> # </a></h3>
<p>&#x4E00;&#x4E2A;&#x7C7B;&#x53EF;&#x4EE5;&#x53BB;&#x7EE7;&#x627F;&#x5176;&#x5B83;&#x7684;&#x7C7B;&#x91CC;&#x7684;&#x4E1C;&#x897F;</p>
<pre><code class="lang-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span> </span>{
   <span class="hljs-keyword">constructor</span>(name){
     <span class="hljs-keyword">this</span>.name = name;
   }
}
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Teacher</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Person</span></span>{
    <span class="hljs-keyword">constructor</span>(name,age){
        <span class="hljs-keyword">super</span>(name);
        <span class="hljs-keyword">this</span>.age = age;
    }
}
<span class="hljs-keyword">var</span> teacher = <span class="hljs-keyword">new</span> Teacher(<span class="hljs-string">&apos;zfpx&apos;</span>,<span class="hljs-number">8</span>);
<span class="hljs-built_in">console</span>.log(teacher.name,teacher.age);
</code></pre>
<h2 id="t548.&#x751F;&#x6210;&#x5668;(Generator)&#x4E0E;&#x8FED;&#x4EE3;&#x5668;(Iterator)">8.&#x751F;&#x6210;&#x5668;(Generator)&#x4E0E;&#x8FED;&#x4EE3;&#x5668;(Iterator) <a href="#t548.&#x751F;&#x6210;&#x5668;(Generator)&#x4E0E;&#x8FED;&#x4EE3;&#x5668;(Iterator)"> # </a></h2>
<p>Generator&#x662F;&#x4E00;&#x4E2A;&#x7279;&#x6B8A;&#x7684;&#x51FD;&#x6570;&#xFF0C;&#x6267;&#x884C;&#x5B83;&#x4F1A;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;Iterator&#x5BF9;&#x8C61;&#x3002;
&#x901A;&#x8FC7;&#x904D;&#x5386;&#x8FED;&#x4EE3;&#x5668;&#xFF0C;
<code>Generator</code>&#x51FD;&#x6570;&#x8FD0;&#x884C;&#x540E;&#x4F1A;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x904D;&#x5386;&#x5668;&#x5BF9;&#x8C61;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x666E;&#x901A;&#x51FD;&#x6570;&#x7684;&#x8FD4;&#x56DE;&#x503C;&#x3002;</p>
<h3 id="t558.1 Iterators&#x6A21;&#x62DF;">8.1 Iterators&#x6A21;&#x62DF; <a href="#t558.1 Iterators&#x6A21;&#x62DF;"> # </a></h3>
<p>&#x8FED;&#x4EE3;&#x5668;&#x6709;&#x4E00;&#x4E2A;next&#x65B9;&#x6CD5;&#xFF0C;&#x6BCF;&#x6B21;&#x6267;&#x884C;&#x7684;&#x65F6;&#x5019;&#x4F1A;&#x8FD4;&#x56DE;&#x4E00;&#x4E2A;&#x5BF9;&#x8C61;
&#x5BF9;&#x8C61;&#x91CC;&#x9762;&#x6709;&#x4E24;&#x4E2A;&#x5C5E;&#x6027;&#xFF0C;&#x4E00;&#x4E2A;&#x662F;<code>value</code>&#x8868;&#x793A;&#x8FD4;&#x56DE;&#x7684;&#x503C;&#xFF0C;&#x8FD8;&#x6709;&#x5C31;&#x662F;&#x5E03;&#x5C14;&#x503C;<code>done</code>,&#x8868;&#x793A;&#x662F;&#x5426;&#x8FED;&#x4EE3;&#x5B8C;&#x6210;</p>
<pre><code class="lang-javascript"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">buy</span>(<span class="hljs-params">books</span>) </span>{
    <span class="hljs-keyword">let</span> i = <span class="hljs-number">0</span>;
    <span class="hljs-keyword">return</span> {
        next(){
            <span class="hljs-keyword">let</span> done = i == books.length;
            <span class="hljs-keyword">let</span> value = !done ? books[i++] : <span class="hljs-literal">undefined</span>;
            <span class="hljs-keyword">return</span> {
                <span class="hljs-attr">value</span>: value,
                <span class="hljs-attr">done</span>: done
            }
        }
    }
}

<span class="hljs-keyword">let</span> iterators = buy([<span class="hljs-string">&apos;js&apos;</span>, <span class="hljs-string">&apos;html&apos;</span>]);
<span class="hljs-keyword">var</span> curr;
<span class="hljs-keyword">do</span> {
    curr = iterators.next();
    <span class="hljs-built_in">console</span>.log(curr);
} <span class="hljs-keyword">while</span> (!curr.done);
</code></pre>
<h3 id="t568.2 Generators">8.2 Generators <a href="#t568.2 Generators"> # </a></h3>
<p>&#x751F;&#x6210;&#x5668;&#x7528;&#x4E8E;&#x521B;&#x5EFA;&#x8FED;&#x4EE3;&#x5668;</p>
<pre><code class="lang-javascript"><span class="hljs-function"><span class="hljs-keyword">function</span>* <span class="hljs-title">buy</span>(<span class="hljs-params">books</span>)</span>{
    <span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> i=<span class="hljs-number">0</span>;i&lt;books.length;i++){
        <span class="hljs-keyword">yield</span> books[i];
    }
}
<span class="hljs-keyword">let</span> buying = buy([<span class="hljs-string">&apos;js&apos;</span>,<span class="hljs-string">&apos;html&apos;</span>]);
<span class="hljs-keyword">var</span> curr;
<span class="hljs-keyword">do</span> {
    curr = buying.next();
    <span class="hljs-built_in">console</span>.log(curr);
} <span class="hljs-keyword">while</span> (!curr.done);
</code></pre>
<h2 id="t579.&#x96C6;&#x5408;">9.&#x96C6;&#x5408; <a href="#t579.&#x96C6;&#x5408;"> # </a></h2>
<h3 id="t589.1 Set">9.1 Set <a href="#t589.1 Set"> # </a></h3>
<p>&#x4E00;&#x4E2A;<code>Set</code>&#x662F;&#x4E00;&#x5806;&#x4E1C;&#x897F;&#x7684;&#x96C6;&#x5408;,<code>Set</code>&#x6709;&#x70B9;&#x50CF;&#x6570;&#x7EC4;,&#x4E0D;&#x8FC7;&#x8DDF;&#x6570;&#x7EC4;&#x4E0D;&#x4E00;&#x6837;&#x7684;&#x662F;&#xFF0C;<code>Set</code>&#x91CC;&#x9762;&#x4E0D;&#x80FD;&#x6709;&#x91CD;&#x590D;&#x7684;&#x5185;&#x5BB9;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> books = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Set</span>();
books.add(<span class="hljs-string">&apos;js&apos;</span>);
books.add(<span class="hljs-string">&apos;js&apos;</span>);<span class="hljs-comment">//&#x6DFB;&#x52A0;&#x91CD;&#x590D;&#x5143;&#x7D20;&#x96C6;&#x5408;&#x7684;&#x5143;&#x7D20;&#x4E2A;&#x6570;&#x4E0D;&#x4F1A;&#x6539;&#x53D8;</span>
books.add(<span class="hljs-string">&apos;html&apos;</span>);
books.forEach(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">book</span>)</span>{<span class="hljs-comment">//&#x5FAA;&#x73AF;&#x96C6;&#x5408;</span>
    <span class="hljs-built_in">console</span>.log(book);
})
<span class="hljs-built_in">console</span>.log(books.size);<span class="hljs-comment">//&#x96C6;&#x5408;&#x4E2D;&#x5143;&#x6570;&#x7684;&#x4E2A;&#x6570;</span>
<span class="hljs-built_in">console</span>.log(books.has(<span class="hljs-string">&apos;js&apos;</span>));<span class="hljs-comment">//&#x5224;&#x65AD;&#x96C6;&#x5408;&#x4E2D;&#x662F;&#x5426;&#x6709;&#x6B64;&#x5143;&#x7D20;</span>
books.delete(<span class="hljs-string">&apos;js&apos;</span>);<span class="hljs-comment">//&#x4ECE;&#x96C6;&#x5408;&#x4E2D;&#x5220;&#x9664;&#x6B64;&#x5143;&#x7D20;</span>
<span class="hljs-built_in">console</span>.log(books.size);
<span class="hljs-built_in">console</span>.log(books.has(<span class="hljs-string">&apos;js&apos;</span>));
books.clear();<span class="hljs-comment">//&#x6E05;&#x7A7A; set</span>
<span class="hljs-built_in">console</span>.log(books.size);
</code></pre>
<h3 id="t599.2 Map">9.2 Map <a href="#t599.2 Map"> # </a></h3>
<p>&#x53EF;&#x4EE5;&#x4F7F;&#x7528; Map &#x6765;&#x7EC4;&#x7EC7;&#x8FD9;&#x79CD;&#x540D;&#x503C;&#x5BF9;&#x7684;&#x6570;&#x636E;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">var</span> books = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Map</span>();
books.set(<span class="hljs-string">&apos;js&apos;</span>,{<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;js&apos;</span>});<span class="hljs-comment">//&#x5411;map&#x4E2D;&#x6DFB;&#x52A0;&#x5143;&#x7D20;</span>
books.set(<span class="hljs-string">&apos;html&apos;</span>,{<span class="hljs-attr">name</span>:<span class="hljs-string">&apos;html&apos;</span>});
<span class="hljs-built_in">console</span>.log(books.size);<span class="hljs-comment">//&#x67E5;&#x770B;&#x96C6;&#x5408;&#x4E2D;&#x7684;&#x5143;&#x7D20;</span>
<span class="hljs-built_in">console</span>.log(books.get(<span class="hljs-string">&apos;js&apos;</span>));<span class="hljs-comment">//&#x901A;&#x8FC7;key&#x83B7;&#x53D6;&#x503C;</span>
books.delete(<span class="hljs-string">&apos;js&apos;</span>);<span class="hljs-comment">//&#x6267;&#x7167;key&#x5220;&#x9664;&#x5143;&#x7D20;</span>
<span class="hljs-built_in">console</span>.log(books.has(<span class="hljs-string">&apos;js&apos;</span>));<span class="hljs-comment">//&#x5224;&#x65AD;map&#x4E2D;&#x6709;&#x6CA1;&#x6709;key</span>
books.forEach(<span class="hljs-function">(<span class="hljs-params">value, key</span>) =&gt;</span> { <span class="hljs-comment">//forEach&#x53EF;&#x4EE5;&#x8FED;&#x4EE3;map</span>
    <span class="hljs-built_in">console</span>.log( key + <span class="hljs-string">&apos; = &apos;</span> + value);
});
books.clear();<span class="hljs-comment">//&#x6E05;&#x7A7A;map</span>
</code></pre>
<h2 id="t6010.&#x6A21;&#x5757;">10.&#x6A21;&#x5757; <a href="#t6010.&#x6A21;&#x5757;"> # </a></h2>
<p>&#x53EF;&#x4EE5;&#x6839;&#x636E;&#x5E94;&#x7528;&#x7684;&#x9700;&#x6C42;&#x628A;&#x4EE3;&#x7801;&#x5206;&#x6210;&#x4E0D;&#x540C;&#x7684;&#x6A21;&#x5757;
&#x6BCF;&#x4E2A;&#x6A21;&#x5757;&#x91CC;&#x53EF;&#x4EE5;&#x5BFC;&#x51FA;&#x5B83;&#x9700;&#x8981;&#x8BA9;&#x5176;&#x5B83;&#x6A21;&#x5757;&#x4F7F;&#x7528;&#x7684;&#x4E1C;&#x897F;
&#x5728;&#x5176;&#x5B83;&#x6A21;&#x5757;&#x91CC;&#x9762;&#x53EF;&#x4EE5;&#x5BFC;&#x5165;&#x8FD9;&#x4E9B;&#x6A21;&#x5757;&#x5BFC;&#x51FA;&#x7684;&#x4E1C;&#x897F;</p>
<h3 id="t6110.1 &#x6A21;&#x5757;">10.1 &#x6A21;&#x5757; <a href="#t6110.1 &#x6A21;&#x5757;"> # </a></h3>
<p>&#x5728;&#x6D4F;&#x89C8;&#x5668;&#x4E2D;&#x4F7F;&#x7528;&#x6A21;&#x5757;&#x9700;&#x8981;&#x501F;&#x52A9;
&#x5BFC;&#x51FA;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">export</span> <span class="hljs-keyword">var</span> name = <span class="hljs-string">&apos;zfpx&apos;</span>;
<span class="hljs-keyword">export</span> <span class="hljs-keyword">var</span> age = <span class="hljs-number">8</span>;
</code></pre>
<p>&#x5BFC;&#x5165;</p>
<pre><code class="lang-javascript"><span class="hljs-comment">//import {name,age} from &apos;./school.js&apos;;</span>
<span class="hljs-keyword">import</span> * <span class="hljs-keyword">as</span> school <span class="hljs-keyword">from</span> <span class="hljs-string">&apos;./school.js&apos;</span>;
<span class="hljs-built_in">console</span>.log(school.name,school.age);
</code></pre>
<p>&#x5728;&#x9875;&#x9762;&#x4E2D;&#x5F15;&#x7528;</p>
<pre><code class="lang-javascript">&lt;script src=<span class="hljs-string">&quot;https://google.github.io/traceur-compiler/bin/traceur.js&quot;</span>&gt;<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></span>
&lt;script src=<span class="hljs-string">&quot;https://google.github.io/traceur-compiler/bin/BrowserSystem.js&quot;</span>&gt;<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></span>
&lt;script src=<span class="hljs-string">&quot;https://google.github.io/traceur-compiler/src/bootstrap.js&quot;</span>&gt;<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></span>
&lt;script type=<span class="hljs-string">&quot;module&quot;</span> src=<span class="hljs-string">&quot;index.js&quot;</span>&gt;<span class="xml"><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></span>
</code></pre>
<h3 id="t6210.2 &#x91CD;&#x547D;&#x540D;">10.2 &#x91CD;&#x547D;&#x540D; <a href="#t6210.2 &#x91CD;&#x547D;&#x540D;"> # </a></h3>
<p>&#x5BFC;&#x51FA;&#x65F6;&#x91CD;&#x547D;&#x540D;</p>
<pre><code class="lang-javascript"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">say</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&apos;say&apos;</span>);
}
<span class="hljs-keyword">export</span> {say <span class="hljs-keyword">as</span> say2};
</code></pre>
<p>&#x5BFC;&#x5165;&#x65F6;&#x91CD;&#x547D;&#x540D;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">import</span> {say2 <span class="hljs-keyword">as</span> say3} <span class="hljs-keyword">from</span> <span class="hljs-string">&apos;./school.js&apos;</span>;
</code></pre>
<h3 id="t6310.3 &#x9ED8;&#x8BA4;&#x5BFC;&#x51FA;">10.3 &#x9ED8;&#x8BA4;&#x5BFC;&#x51FA; <a href="#t6310.3 &#x9ED8;&#x8BA4;&#x5BFC;&#x51FA;"> # </a></h3>
<p>&#x6BCF;&#x4E2A;&#x6A21;&#x5757;&#x90FD;&#x53EF;&#x4EE5;&#x6709;&#x4E00;&#x4E2A;&#x9ED8;&#x8BA4;&#x8981;&#x5BFC;&#x51FA;&#x7684;&#x4E1C;&#x897F;
&#x5BFC;&#x51FA;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">say</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-built_in">console</span>.log(<span class="hljs-string">&apos;say&apos;</span>);
}
</code></pre>
<p>&#x5BFC;&#x5165;</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">import</span> say <span class="hljs-keyword">from</span> <span class="hljs-string">&apos;./school.js&apos;</span>;
</code></pre>
<h3 id="t6411 &#x6DF1;&#x5EA6;&#x514B;&#x9686;">11 &#x6DF1;&#x5EA6;&#x514B;&#x9686; <a href="#t6411 &#x6DF1;&#x5EA6;&#x514B;&#x9686;"> # </a></h3>
<pre><code>var parent = {
  age: 5,
  hobby: [1, 2, 3],
  home: {city: &apos;&#x5317;&#x4EAC;&apos;},
};

var child = extendDeep(parent);
child.age = 6;
child.hobby.push(&apos;4&apos;);
child.home.city = &apos;&#x5E7F;&#x4E1C;&apos;;
console.log(&apos;child &apos;, child); //[1, 2, 3, 4]
console.log(&apos;parent &apos;, parent);
function extend(parent) {
  let child;
  if (Object.prototype.toString.call(parent) == &apos;[object Object]&apos;) {
    child = {};
    for (let key in parent) {
      child[key] = extend(parent[key])
    }
  } else if (Object.prototype.toString.call(parent) == &apos;[object Array]&apos;) {
    child = parent.map(item =&gt; extend(item));
  } else {
    return parent;
  }
  return child;
}

function extendDeep(parent, child) {
  child = child || {};
  for (var key in parent) {
    if (typeof parent[key] === &quot;object&quot;) {
      child[key] = (Object.prototype.toString.call(parent[key]) === &quot;[object Array]&quot;) ? [] : {};
      extendDeep(parent[key], child[key]);
    } else {
      child[key] = parent[key];
    }
  }
  return child;
}
</code></pre><h2 id="t65&#x4F5C;&#x4E1A;">&#x4F5C;&#x4E1A; <a href="#t65&#x4F5C;&#x4E1A;"> # </a></h2>
<ol>
<li>&#x81EA;&#x5DF1;&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x8DDF;&#x539F;&#x6765;&#x9ED8;&#x8BA4;&#x529F;&#x80FD;&#x4E00;&#x6837;&#x7684;&#x6807;&#x7B7E;&#x5B57;&#x7B26;&#x4E32;&#x65B9;&#x6CD5;</li>
</ol>

        <div class="copyright">Powered by <a href="https://github.com/jaywcjlove/idoc" target="_blank">idoc</a>. Dependence <a href="https://nodejs.org">Node.js</a> run.</div>
    </div>
    
</div>

<script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.js"></script>
<script>
$('.warpper .page-toc ul ul li a').on('click',function(){
  $('.warpper .page-toc ul ul li a').removeClass('my-active')
  $(this).addClass('my-active')
})
  // if (!$('.understand-me').length) {
  //   var bar = $(window).height() - $('.navbar ').height() - $('.page-toc').position().top;
  //   var count = bar / 26 / 2;
  //   var barHeight = $('.page-toc').outerHeight();
  //   $('.page-toc li').eq(0).children('a').addClass('red');
  //   var arr = [];
  //   $("h1,h2,h3,h4,h5,h6").each(function () {
  //     arr.push($(this).position().top);
  //   });
  //   var timer
  //   function dark() {
  //     clearTimeout(timer)
  //      timer = setTimeout(function () {
  //      var top = Math.abs($('.page-toc > ul').position().top);
  //      var cur = $('.content').scrollTop();
  //      for (var i = arr.length; i >= 0; i--) {
  //        if (arr[i] <= cur) {
  //          break;
  //        }
  //      }
  //      if (i === -1) {
  //        i = 0;
  //      }
  //      $('.page-toc li a').removeClass('red');
  //      $('.page-toc li').eq(i).children('a').addClass('red');
  //      let height = $('.page-toc li').eq(i).position().top-$('.page-toc').height(); // 如果当前的offset出去了 回到中间可好？
  //      $('.page-toc').scrollTop(height+$('.page-toc').height()/2);
  //    },200)
  //   }

  //   $('.content').on('scroll', dark);
  // }
</script>
<style>

    /* ::-webkit-scrollbar{width:14px;}
    ::-webkit-scrollbar-track{background-color:transparent;}
    ::-webkit-scrollbar-thumb{background-color:transparent;}
    ::-webkit-scrollbar-thumb:hover {background-color:transparent}
    ::-webkit-scrollbar-thumb:active {background-color:transparent} */

    .page-toc > ul .red {
        background: #f3f3f3;
        z-index: 1;
        border-left: 3px solid #009a61;
        -webkit-transition: all .2s ease;
        transition: all .2s ease;
        color: #000
    }





</style>
</body>
</html>
